var combine = function (n, k) {
  backtracking(n, k, 1);
  return res;
};
var res = [];
var path = [];
function backtracking(n, k, startindex) {
  if ([...path].length == k) {
    res.push(path);
    return;
  }
  for (let i = startindex; i <= n; i++) {
    path.push(i);
    backtracking(n, k, i + 1);
    path.pop();
  }
}
// }
// var combine = function (n, k) {
//   backtrack(n, k, 1, []);
//   return ans;
// };
// var ans = [];
// const backtrack = (n, k, start, track) => {
//   if (k == track.length) {
//     ans.push(track);
//     return;
//   }
//   for (let i = start; i <= n; i++) {
//     track.push(i);
//     backtrack(n, k, i + 1, [...track]);
//     track.pop();
//   }
// };
let result = combine(4, 2);
console.log(result);
// 回溯法标准模板
// let res=[];// 接受结果的集合
// // track 用于临时收集结果的集合
// function backtrack(n,k,startindex,track)
// {
//     if(满足条件)
//     {
//         res.push(track);
//         return;
//     }
//     for(遍历内容)
//     {
//        track.push(结果项1);// 做选择
//        backtrack(n,k,i+1,track); // 递归
//        track.pop();// 回溯 撤销选择
//     }
// }
